package com.itheima.wisdomnext.controller;

import com.itheima.wisdomnext.entity.Favorite;
import com.itheima.wisdomnext.entity.Result.ResponseResult;
import com.itheima.wisdomnext.service.FavoriteService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@CrossOrigin // 允许跨域请求
@RestController // 表示这是一个控制器，并且返回的是 JSON 格式数据
@RequestMapping("/api/favorite") // 请求路径前缀
public class FavoriteController {

    @Autowired
    private FavoriteService favoriteService; // 自动注入 FavoriteService，处理业务逻辑

    /**
     * 添加收藏
     * 请求方式：POST
     * 请求路径：/api/favorite/add
     * 请求体：Favorite 对象（包含 userId 和 postId）
     */
    @PostMapping("/add")
    public ResponseResult<Object> addFavorite(@RequestBody Favorite favorite) {
        favoriteService.addFavorite(favorite); // 调用 service 添加收藏记录
        return ResponseResult.success("收藏成功！", null);
    }

    /**
     * 获取某个用户的所有收藏记录
     * 请求方式：GET
     * 请求路径：/api/favorite/user/{userId}
     * 路径参数：userId 用户 ID
     */
    @GetMapping("/user/{userId}")
    public ResponseResult<List<Favorite>> getFavoritesByUserId(@PathVariable Integer userId) {
        List<Favorite> favorites = favoriteService.getFavoritesByUserId(userId); // 查询收藏列表
        return ResponseResult.success("获取收藏记录成功！", favorites);
    }

    /**
     * 删除收藏记录（支持传入 userId 和 postId 来确定哪条记录）
     * 请求方式：POST
     * 请求路径：/api/favorite/delete
     * 请求体：Favorite 对象（包含 userId 和 postId）
     */
    @PostMapping("/delete")
    public ResponseResult<Object> deleteFavorite(@RequestBody Favorite favorite) {
        favoriteService.deleteFavorite(favorite); // 删除收藏记录
        return ResponseResult.success("删除成功！", null);
    }
}
